home *** CD-ROM | disk | FTP | other *** search
- /* @(#)cg9var.h 1.10 90/03/22 SMI */
-
- /* Copyright (c) 1989 by Sun Microsystems, Inc. */
-
- /*
- * CG9 Header File
- * Describe "Private Data" of CG9 Pixrect, also external
- * references to pixrect operation
- */
-
- #ifndef cg9var_DEFINED
- #define cg9var_DEFINED
-
- #ifndef SVR4
- #include <sundev/cg9reg.h>
- #endif SVR4
- #include <pixrect/memvar.h>
- #ifndef SVR4
- #include <sunwindow/cms.h> /* colormapseg */
- #else
- #include <sys/cms.h>
- #endif SVR4
-
- /* description of single CG9 frame buffer */
-
- struct cg9fb {
- short group; /* plane group implemented */
- short depth; /* depth, bits */
- struct mprp_data mprp; /* memory pixrect data */
- };
-
- #define CG_TYPE 3 /* for dev_specific stamp of fb.type */
- #define CG_SIZE 4 /* for dev_specific stamp of fb size */
- #define CG9_NFBS 3 /* number of frame buffers in a CG9 */
-
- /* CG9 Pixrect private data */
-
- struct cg9_data {
- struct mprp_data mprp; /* memory pixrect simulator */
- int flags; /* misc. flags */
- int planes; /* current group and mask */
- int fd; /* file descriptor */
- short active; /* active fb no. */
- struct cg9_control_sp *ctrl_sp;
- struct cg9fb fb[CG9_NFBS]; /* frame buffer info */
- int windowfd; /* if 8-bit indexed pw */
- struct colormapseg cms; /* if 8-bit indexed pr */
- int real_windowfd; /* for dblbuf hack */
- };
-
- /* useful macros */
- #define cg9_d(pr) ((struct cg9_data *) ((pr)->pr_data))
-
- #define CG9_PR_TO_MEM(src, mem) \
- if (src && src->pr_ops != &mem_ops) \
- { \
- mem.pr_ops = &mem_ops; \
- mem.pr_size = src->pr_size; \
- mem.pr_depth = src->pr_depth; \
- mem.pr_data = (char *) &cg9_d(src)->mprp; \
- src = &mem; \
- }
-
- #define CG9_PR_TO_MEM32(pr, mem32_pr, mem32_pr_data) \
- if (pr && pr->pr_ops != &mem_ops) \
- { \
- mem32_pr.pr_ops = &mem32_ops; \
- mem32_pr.pr_size = pr->pr_size; \
- mem32_pr.pr_depth = pr->pr_depth; \
- mem32_pr_data.mprp = cg9_d(pr)->mprp; \
- mem32_pr_data.plane_group = cg9_d(pr)->fb[cg9_d(pr)->active].group;\
- mem32_pr_data.fd = cg9_d(pr)->fd; \
- mem32_pr_data.windowfd = cg9_d(pr)->windowfd; \
- mem32_pr_data.cms = cg9_d(pr)->cms; \
- mem32_pr.pr_data = (char *) &mem32_pr_data; \
- pr = &mem32_pr; \
- }
-
- extern struct pixrectops cg9_ops;
- int cg9_putcolormap();
- int cg9_putattributes();
- int cg9_rop();
- int cg9_ioctl();
-
- #ifndef KERNEL
- Pixrect *cg9_make();
- int cg9_destroy();
- Pixrect *cg9_region();
- int cg9_getcolormap();
- int cg9_getattributes();
- int cg9_vector();
- int cg9_get();
- int cg9_put();
-
- #endif !KERNEL
-
- #endif cg9var_DEFINED
-